package com.petrochina.cloudconfig.util;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Map;
import java.util.Properties;
import java.util.Set;


/**
 * 
 * <pre>
 * 类名标题: 属性文件读取工具
 * 
 * 创建人员：gl
 * 
 * 创建时间：2015年1月12日上午8:49:23
 * 
 * 说明描述: 
 * 
 * </pre>
 */
public class PropertiesUtil{
	
	
	/**
	 * 
	 * <pre>
	 * 方法说明：读取属性文件
	 * 
	 * 开发时间：2015年1月12日上午8:50:14
	 * 
	 * 开发人员：gl
	 * 
	 * @param filePath 文件路径
	 * @return Properties 属性文件
	 * @throws IOException 
	 * 
	 * </pre>
	 *
	 */
	public static Properties readProperties(String filePath) throws IOException{
		Properties prop = new Properties();
		InputStream in = new FileInputStream(filePath);
		prop.load(in);
		in.close();
		return prop;
	}
	

	/**
	 * 
	 * <pre>
	 * 方法说明：写属性文件
	 * 
	 * 开发时间：2015年1月12日上午8:57:46
	 * 
	 * 开发人员：gl
	 * 
	 * @param filePath 文件路径
	 * @param keyValues 键-值 集合
	 * @throws IOException
	 * 
	 * </pre>
	 *
	 */
	public static void writeProperties(String filePath,Map<String,String> keyValues)throws IOException{
		if(keyValues != null && keyValues.size() > 0 ){
			Properties prop = PropertiesUtil.readProperties(filePath);
			Set<String> keys = keyValues.keySet();
			FileOutputStream ou = new FileOutputStream(filePath);
			for(String key:keys){
				prop.setProperty(key,keyValues.get(key));
			}
			prop.store(ou, filePath);
			ou.close();
		}    
	}
	
}
